Advances in semiconductor processing and logic design have permitted an increase in the amount of logic that may be present on integrated circuit devices. As a result, computer system configurations have evolved from a single or multiple integrated circuits in a system to multiple hardware threads, multiple cores, multiple devices, and/or complete systems on individual integrated circuits. Additionally, as the density of integrated circuits has grown, the power requirements for computing systems (from embedded systems to servers) have also escalated. Furthermore, software inefficiencies, and its requirements of hardware, have also caused an increase in computing device energy consumption. In fact, some studies indicate that computing devices consume a sizeable percentage of the entire electricity supply for a country, such as the United States of America. As a result, there is a vital need for energy efficiency and conservation associated with integrated circuits. These needs will increase as servers, desktop computers, notebooks, Ultrabooks™, tablets, mobile phones, processors, embedded systems, etc. become even more prevalent (from inclusion in the typical computer, automobiles, and televisions to biotechnology).
As a result of manufacturing variations, each core of a multicore processor may have slightly different power/performance characteristics. Such variation is typically hidden from a system by presenting all cores with the same capabilities by identifying processor operating parameters based on the slowest or worst performing core of the processor (e.g., as determined by manufacturing or characterization testing). Such processor configuration results in lost opportunities in terms of performance, power savings, thermals and reliability, as well as the inability to make engineering trade-offs between these four vectors.